package ltd.hanamaki.review.jdbc;

import com.mysql.cj.jdbc.Driver;

import java.sql.*;

/**
 * @author hanamaki
 */
public class JdbcDemo {
    static Connection connection;
    static Statement statement;
    static ResultSet resultSet;

    public static void main(String[] args) {
        /* 1. 下驱动 */
        /* 2. 注册驱动 */
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("数据库驱动异常");
        }

        /* 编写数据库的 连接 信息 */
        /* jdbc:数据库://主机地址:端口号/数据库名?参数 */
        String url = "jdbc:mysql://localhost:3306/mysources?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
        String password = "root";
        String username = "root";

        /* 连接 数据库 */
        try {
            /* Connection 代表的是 数据库的连接的  对象 */
            connection = DriverManager.getConnection(url, username, password);

            /* 我们需要创建  执行sql的对象 Statement 可以执行 sql 语句 */
            statement = connection.createStatement();

            /* 编写 需要执行的 sql语句  */
            String sql = "select * from students";
            /* 通过 statement 来执行  sql语句 */
            resultSet = statement.executeQuery(sql);

            /* 通过遍历 结果集来得到 想要的结果 */
            while (resultSet.next()) {
                /* 拿出来 */
                Object name = resultSet.getObject(2);
                System.out.println(name);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {

            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }


        }


    }

}
